home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-169 < prev    next >
Text File  |  1988-12-01  |  65KB  |  1,741 lines

  1.  
  2.  
  3.                                               INDRA
  4.                                              Working
  5.                                               Paper
  6.  
  7.  
  8.  
  9.      INDRA Note 1025
  10.      IEN 169
  11.      23rd January 1981
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                     A Simple NIFTP-Based Mail System
  23.  
  24.  
  25.  
  26.                              C. J. Bennett
  27.  
  28.  
  29.  
  30.  
  31.  
  32.           ABSTRACT: This INDRA  Note  proposes  a  draft  mail
  33.           protocol  for  use  in  a  wide  variety  of network
  34.           situations. This protocol draws heavily on  existing
  35.           facilities and could be brought up very quickly - in
  36.           months rather than years. It could thus be  used  as
  37.           an  interim  solution  until international standards
  38.           emerge.   An  experiment  in  the  ARPA  Catenet  is
  39.           proposed,  and  the  use  of the system in the UK is
  40.           discussed.
  41.  
  42.  
  43.  
  44.  
  45.  
  46.                      Department of Computer Science
  47.                        University College London
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.      1. Introduction
  64.  
  65.        One of the major uses of computer networks is for electronic
  66.      mail services. Now that networking technology is proliferating
  67.      rapidly, it is highly desirable that such services  should  be
  68.      made  available  with  the new networks.  However, despite the
  69.      recent adoption of Teletex proposals by CCITT, it may be  some
  70.      time  before  one  can  expect  international  standards to be
  71.      finalised and widely available. Hence there is a  strong  need
  72.      for a simple interim scheme, which could cover the basic needs
  73.      for  mail  transfer  across  multiple  networks  and   through
  74.      intermediate mail relays in a flexible fashion.  We at UCL are
  75.      particularly concerned with this, as we see  the  need  for  a
  76.      scheme  which  will operate both with the facilities available
  77.      in the United States, and those rapidly becoming available  in
  78.      Britain and Europe.
  79.  
  80.        This note contains a proposal for such an interim  protocol,
  81.      discusses  the  requirements  on  mail  relays,  and  also the
  82.      requirements for experimental systems based on it, both in the
  83.      US  and  the  UK. Partly because the proposed system uses ARPA
  84.      facilities,  the  document  has   a   certain   bias   towards
  85.      familiarity  with ARPA systems and terminology. In particular,
  86.      the  note  assumes  familiarity  with  RFC733   mail   formats
  87.      [Crocker77],  the  ARPA standard. However, it is believed that
  88.      the  system  will  also  be  useful  in  other   environments,
  89.      particularly the X25 and Network Independent Transport Service
  90.      [SG3/80] environments which will be available shortly  in  the
  91.      UK.  ARPA-oriented  readers  should  note  that familiarity is
  92.      assumed with the NIFTP [HLPG81], the interim UK file  transfer
  93.      standard.
  94.  
  95.        Comments are solicited and welcomed.
  96.  
  97.  
  98.      2. Requirements
  99.  
  100.        The basic requirements for an immediate mail service are  as
  101.      follows:
  102.  
  103.       (1)    Maximum use must be made  of  existing  standards.  No
  104.              radical  new mail formats, transfer protocols, etc may
  105.              be  imposed.  Using  these  facilities  it  should  be
  106.              possible  to bring up an initial service within months
  107.              rather than years.
  108.  
  109.       (2)    The service should be economic.  In  particular,  only
  110.              one  copy  of  a message should be transmitted to each
  111.              destination mail server.
  112.  
  113.  
  114.  
  115.  
  116. Bennett                                                         [Page 1]
  117.  
  118. INDRA Note 1025                                         NIFTP-Based Mail
  119.  
  120.  
  121.  
  122.  
  123.  
  124.       (3)    The  service  should  be  independent  of   particular
  125.              networks.
  126.  
  127.       (4)    Address information must be transmitted in a way which
  128.              is usable by mail relays.
  129.  
  130.       (5)    Total global knowledge of mail server addresses should
  131.              not be necessary.
  132.  
  133.       (6)    The service should be as flexible as  possible.  Where
  134.              possible  it  should  be easy to extend it to meet new
  135.              needs as they emerge.
  136.  
  137.      The last  requirement  is  perhaps  the  least  important.  It
  138.      implies  that the service will be around for sufficiently long
  139.      that experimental technical advances in message processing can
  140.      be   usefully   incorporated.   For   instance,   the  minimum
  141.      requirement  is  that  text  messages  must  be  transferable.
  142.      Requirement (vi) suggests that it should be possible to extend
  143.      the service simply  to  transfer  mixed-media  messages.  When
  144.      assessing  whether  a given proposal meets this criterion, the
  145.      multi-media case will be used as a test.
  146.  
  147.        No existing system in wide use meets all these  constraints.
  148.      Hence  it  is  necessary  to  combine  elements with the right
  149.      properties from a number of  sources  not  all  of  which  are
  150.      currently used for mail.
  151.  
  152.        It should be noted that the  service  defined  here  is  not
  153.      intended  to  be perfect. In particular, it does not of itself
  154.      guarantee bidirectionality, endpoint reliability,  or  use  of
  155.      address  lists.   These  will normally be available for direct
  156.      endpoint transfer, and any problems are most likely  to  arise
  157.      if intermediate relays are used. It is possible to support all
  158.      these things using it, and  of  course  they  are  encouraged.
  159.      However,  I  feel that a service adequate for ordinary use can
  160.      be achieved without  defining  a  great  deal  of  complicated
  161.      additional  mechanism  to guarantee these properties. Finally,
  162.      the  problem  of  conversion  between  mail  formats  is   not
  163.      discussed at all.
  164.  
  165.  
  166.      3. Basic Elements
  167.  
  168.      3.1 Mail Format
  169.  
  170.  
  171.  
  172.  
  173.  
  174. Bennett                                                         [Page 2]
  175.  
  176. INDRA Note 1025                                         NIFTP-Based Mail
  177.  
  178.  
  179.  
  180.  
  181.  
  182.        The mail format defines the standards for the appearance  of
  183.      a  message;  it covers such things as the definition of header
  184.      fields to  allow  messages  to  be  processed  by  a  standard
  185.      program.
  186.  
  187.        The mail format most readily available is the  ARPANET  mail
  188.      standard  commonly  known  as  RFC733, defined in [Crocker77],
  189.      which is compatible with all except the last of the objectives
  190.      listed above. RFC733 has been widely and successfully used for
  191.      many years. In practice only  a  subset  of  the  standard  is
  192.      actually  used  -  in particular, the standard allows extended
  193.      addressing  by  specifying  destination   networks,   but   no
  194.      implementation  supports  this. It is proposed that the common
  195.      subset of this standard be used. The only change suggested  is
  196.      that  the  text  code  should  be  IA5  rather than the Telnet
  197.      version of ASCII, as IA5  is  an  international  standard.  In
  198.      practice,  the  two codes are virtually identical.  An example
  199.      of an RFC733 message, and a summary of the RFC733  syntax,  is
  200.      given in Appendix I.
  201.  
  202.        This standard is completely text-oriented, for both  message
  203.      header  (control)  and  message text (data) information.  This
  204.      makes it readily compatible with most of  the  text-processing
  205.      software generally available on most interactive systems, such
  206.      as text editors, pro forma preparation etc.
  207.  
  208.        Other formats may be agreed to in the near future. These may
  209.      extended  facilities,  such  as facsimile or multi-media mail.
  210.      These can be accommodated provided any mail servers needing to
  211.      process  the  mail body understand the format in use. Hence it
  212.      may be necessary to provide a means for labelling  the  format
  213.      in use. Such a label is not defined at this time.
  214.  
  215.  
  216.      3.2 Mail Addresses
  217.  
  218.        In any mail system it is essential to provide addresses  for
  219.      the  mail  recipient, and usually for the mail sender as well.
  220.      While mail will frequently be transferred directly between the
  221.      sender and the recipient, there will be occasions when it will
  222.      be  routed,  and  possibly  temporarily  stored,  through   an
  223.      intermediate mail relay.
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. Bennett                                                         [Page 3]
  233.  
  234. INDRA Note 1025                                         NIFTP-Based Mail
  235.  
  236.  
  237.  
  238.  
  239.  
  240.        Mail addresses are constrained to  be  compatible  with  the
  241.      RFC733  format  as generally used, viz. <username>@<hostname>.
  242.      The <hostname> field defines the host used for an initial mail
  243.      transfer, and in standard RFC733 usage, no further structuring
  244.      is defined or required. If this  name  is  understood  by  all
  245.      message  relays  along a route, then no further structuring is
  246.      ever required. If further structuring is required,  it  should
  247.      be  through  the  use of element separators in the <username>.
  248.      The addressing structures encountered when mail relays must be
  249.      used are discussed further in section 5.1.
  250.  
  251.  
  252.      3.3 Mail Transfer
  253.  
  254.        In addition to  the  appearance  of  the  messages  and  the
  255.      identity  of the parties, it is necessary to define a protocol
  256.      for transferring mail between the  two.  At  first  sight,  it
  257.      would seem natural to take over ARPA-developed procedures here
  258.      too, so that  one  could  use  a  complete,  preexisting  mail
  259.      package.   Despite the great success which have attended these
  260.      procedures,  and  their  undoubted  appropriateness  for   the
  261.      environment  for  which they were designed, they do not fulfil
  262.      the needs of the wider message community,  for  reasons  which
  263.      are discussed below.
  264.  
  265.        The standard  ARPANET  Mail  Transfer  procedure  [Postel76]
  266.      fulfils  only  the  first  of  the  requirements listed in the
  267.      introduction, and is therefore not acceptable. In  particular,
  268.      it has the following failings:
  269.  
  270.       (1)    It is uneconomic in that it  transmits  one  copy  per
  271.              destination user.
  272.  
  273.       (2)    It is specific to the ARPANET.
  274.  
  275.       (3)    It transfers address information in  a  way  which  is
  276.              only usable for direct source/destination transfer.
  277.  
  278.       (4)    It requires all hosts to be aware of all  host  names,
  279.              and   hence  requires  a  globally  understood  global
  280.              address space.
  281.  
  282.       (5)    It can only ever handle text data. If binary data in a
  283.              mixed-media message were encoded as text symbols and a
  284.              code conversion was required between NVT-ASCII  and  a
  285.              local text encoding, that data would be corrupted.
  286.  
  287.  
  288.  
  289.  
  290. Bennett                                                         [Page 4]
  291.  
  292. INDRA Note 1025                                         NIFTP-Based Mail
  293.  
  294.  
  295.  
  296.  
  297.  
  298.        A recent ARPA proposal [Sluizer80] for a new  Mail  Transfer
  299.      Protocol  (MTP)  remedies  in  whole  or in part some of these
  300.      deficiencies.  In  particular,  it  provides  facilities   for
  301.      economic   uses   of   resources,   and  transfers  addressing
  302.      information in a way compatible with objectives (iv) and  (v).
  303.      However  the MTP as it is currently proposed has some problems
  304.      of its own:
  305.  
  306.       (1)    The MTP allows a single copy of a message to  be  sent
  307.              to  multiple  recipients, and is thus potentially more
  308.              economic than the  standard  ARPA  protocol.  However,
  309.              this  is only an option which need not be implemented.
  310.              Moreover, the mail sender can only  specify  one  path
  311.              for  a  given  message  to  pass  through intermediate
  312.              relays. Thus MTP does not allow a single  copy  to  be
  313.              sent  to  a  relay  which  could then decide to create
  314.              multiple copies  for  different  destinations  at  the
  315.              point of a path division.
  316.  
  317.       (2)    In MTP, address lists may be transferred either before
  318.              or after the message body. With the 'recipients first'
  319.              option, it is  only  possible  to  check  the  current
  320.              validity  of  the  addresses  - for the actual message
  321.              transfer, only total success and total failure can  be
  322.              indicated.  If  a  given recipient became inaccessible
  323.              for some reason between the  two  stages,  the  entire
  324.              transfer would fail.
  325.  
  326.       (3)    The MTP  is  defined  to  operate  in  an  environment
  327.              similar to that of the ARPA Catenet. In particular, it
  328.              relies  heavily  on  the   use   of   Telnet   command
  329.              procedures,  which  are  both  little known and little
  330.              used outside the ARPA community  -  especially  within
  331.              Europe.  It does not define the mechanisms by which it
  332.              will operate across more than  one  network  (just  as
  333.              Telnet  does  not), or where Telnet procedures are not
  334.              appropriate.  To  this  extent,  it  is  not  network-
  335.              independent.
  336.  
  337.       (4)    The MTP provides no restart procedures to recover from
  338.              errors   signalled   by   either   the   host  or  the
  339.              transmission medium. It is therefore only as  reliable
  340.              as  the  weakest  underlying network.  For example, an
  341.              X25-based version could not recover from Resets.
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348. Bennett                                                         [Page 5]
  349.  
  350. INDRA Note 1025                                         NIFTP-Based Mail
  351.  
  352.  
  353.  
  354.  
  355.  
  356.       (5)    It can only ever handle text data. If binary data in a
  357.              mixed-media message were encoded as text symbols and a
  358.              code conversion was required between NVT-ASCII  and  a
  359.              local text encoding, that data would be corrupted.
  360.  
  361.  
  362.        Accordingly, it is felt here that mail transfer outside  the
  363.      ARPA  environment  should  use  an  alternative  base.  It  is
  364.      proposed here that mail transfer  be  achieved  using  defined
  365.      conventions   with   the  Network  Independent  File  Transfer
  366.      Protocol (NIFTP - [HLPG81]). This FTP is, as the name implies,
  367.      network  independent,  has  been  implemented  on  a number of
  368.      different existing networks, including the  ARPANET  and  ARPA
  369.      Catenet,  and  has  been  successfully  used  for  direct file
  370.      transfers across several intermediate  networks.  The  revised
  371.      version  will be adopted as an interim standard in Britain and
  372.      has  evoked  wide  interest  in  Europe.  There  are  numerous
  373.      implementations  of  the  existing version, and it is expected
  374.      that the revised version will be  implemented  fairly  rapidly
  375.      after  the  new  specification  is  released,  which should be
  376.      within the next two months. It  thus  meets  the  criteria  of
  377.      availability,  standardisation  and  network  independence. It
  378.      remains to define a transfer procedure which meets  the  other
  379.      criteria.
  380.  
  381.  
  382.      4. Point to Point Mail Transfer
  383.  
  384.        Using RFC733 mail formats and RFC733-compatible  addressing,
  385.      it  is necessary to define the procedure used to transfer mail
  386.      from a mail donor to  a  mail  server  with  the  NIFTP.  This
  387.      section defines that procedure.
  388.  
  389.  
  390.      4.1 Mail Structure
  391.  
  392.      4.1.1 Proposal
  393.  
  394.        A letter shall be transferred as a single file from the mail
  395.      donor  to  the  mail  server.   The  file  name  used shall be
  396.      provided by the mail server. The structure of the file  is  as
  397.      follows:
  398.  
  399.      <address list><one or more blank lines><mail text>
  400.  
  401.      The  <address  list>  is  a  list  of  full,  explicit  RFC733
  402.  
  403.  
  404.  
  405.  
  406. Bennett                                                         [Page 6]
  407.  
  408. INDRA Note 1025                                         NIFTP-Based Mail
  409.  
  410.  
  411.  
  412.  
  413.  
  414.      addresses to whom the mail shall be distributed  by  the  mail
  415.      server.
  416.  
  417.      The <mail text> shall conform with RFC733 formats.
  418.  
  419.  
  420.      4.1.2 Discussion
  421.  
  422.      4.1.2.1 Address Lists
  423.  
  424.        This structure is designed to fulfil  the  requirement  that
  425.      the  service  be  economic.  The passing of the <address list>
  426.      minimises the number of copies of the message  which  must  be
  427.      made  by  the donor, but allows decisions to create additional
  428.      copies to be made simply by intermediate relays.
  429.  
  430.        The <address list> must contain explicit  addresses  as  the
  431.      mail  server  is not necessarily able to access address lists,
  432.      and in any case requires additional mechanism to  do  so.  The
  433.      addresses  should be full (i.e. contain an explicit <hostname>
  434.      component) as the server may be a relay using address  mapping
  435.      mechanisms (see below).
  436.  
  437.  
  438.      4.1.2.2 Possible Extensions
  439.  
  440.        There are two simple extensions which may be desirable:
  441.  
  442.       (1)    To distinguish between message formats. This  requires
  443.              simply  the  addition  of  an  extra field in the mail
  444.              file, and the definition of  text  encodings.  Such  a
  445.              field  should  be  inserted between the <address list>
  446.              and the <message text>. The use of other formats  will
  447.              particularly affect the design of mail relays.
  448.  
  449.       (2)    Mailbagging. The file  may  contain  several  messages
  450.              separated  by  defined  message  delimiters. (A simple
  451.              one, which is widely used in  message  files  on  UNIX
  452.              systems   in   the   ARPANET,  is  ^A^A<cr>.   Another
  453.              alternative,  preferred   here,   is   to   insert   a
  454.              delimitered  character  count,  encoded  in IA5, as in
  455.              TENEX.) Mailbagging also has other implications.   For
  456.              instance,  if  the  mail  donor  wishes  to initiate a
  457.              mailbagged transfer  and  it  knows  the  name  of  an
  458.              existing   mailbag  at  the  server  from  a  previous
  459.              transfer, it may  append  the  file  to  the  existing
  460.  
  461.  
  462.  
  463.  
  464. Bennett                                                         [Page 7]
  465.  
  466. INDRA Note 1025                                         NIFTP-Based Mail
  467.  
  468.  
  469.  
  470.  
  471.  
  472.              mailbag.  The advantages of a mailbagging  system  are
  473.              for further study.
  474.  
  475.  
  476.  
  477.      4.1.2.3 Alternative Structures
  478.  
  479.        Two alternative structures were considered,  both  involving
  480.      the  explicit  separation  of  the  address list from the mail
  481.      text.
  482.  
  483.        The first was to require the donor to specify the file name,
  484.      which  would  be  the  address  list.  This  has  a  number of
  485.      disadvantages:
  486.  
  487.       (1)    The NIFTP  allows  a  maximum  string  length  of  255
  488.              characters  for  string-valued  attributes. This would
  489.              allow at most about 12-20 addresses.
  490.  
  491.       (2)    It would be difficult  to  trace  the  progress  of  a
  492.              message  through  a series of relays. With an explicit
  493.              and known filename, it would be possible  to  initiate
  494.              manual or automatic tracing procedures.
  495.  
  496.       (3)    It is unlikely that most mail servers or relays  would
  497.              be  able to use such a filename directly. The internal
  498.              filename would be created using  local  mappings.  The
  499.              potential costs of these mappings could be very high.
  500.  
  501.  
  502.        The  second  alternative  considered  was  to  transfer  the
  503.      address  list  and  mail text as two separate files. This also
  504.      has disadvantages:
  505.  
  506.       (1)    The two files must be linked, e.g. by  requiring  that
  507.              an  Action  Message  be  passed  on  STOP  or  STOPACK
  508.              containing the  filename  to  be  used  for  the  text
  509.              portion of the transfer.
  510.  
  511.       (2)    An additional level of error handling  procedure  must
  512.              be  defined,  to  cover  cases  such  as the loss of a
  513.              portion of the message text, or  the  arrival  of  two
  514.              address lists with no intermediate message text.
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522. Bennett                                                         [Page 8]
  523.  
  524. INDRA Note 1025                                         NIFTP-Based Mail
  525.  
  526.  
  527.  
  528.  
  529.  
  530.        These problems are avoided by  the  mechanism  proposed.  By
  531.      sending  the  address  list  and  the  body  as a single file,
  532.      address lists of arbitrary length can be sent; their  link  to
  533.      the  text  is  assured;  maximum  use can be made of the NIFTP
  534.      reliability mechanisms; and the donor can be assured that  the
  535.      mail has at least reached the server host.
  536.  
  537.        The new MTP proposal from the ARPA community  has  a  fairly
  538.      similar  proposal,  but  allows  as  an  additional option the
  539.      possibility of transmitting the  text  before  the  addressing
  540.      data,  arguing  that  in some cases this is more efficient for
  541.      the destination host. Although it is conceivable that this may
  542.      be  true  for  MTP  given the details of the MTP mechanisms, I
  543.      think it is most unlikely that any advantage would  be  gained
  544.      in  the  current  context;  moreover,  in  order to achieve it
  545.      additional mechanism is required to specify  which  option  is
  546.      being used. Hence it has not been proposed.
  547.  
  548.  
  549.      4.2 Mail Server Identification
  550.  
  551.      4.2.1 Proposal
  552.  
  553.        The mail server will be identified by its transport  service
  554.      subaddress.  This  subaddress  will  be  network-specific  and
  555.      possibly host-specific; for instance, on the ARPANET  it  will
  556.      be  an  NCP  server socket, on the ARPA Catenet a TCP port, on
  557.      public data networks an X25 or Transport Service subaddress as
  558.      appropriate.
  559.  
  560.        If the mail donor and server are not on the  same  transport
  561.      service,  it is the responsibility of the intermediate virtual
  562.      call gateways to perform any address transformations required,
  563.      e.g. mapping the NCP mail socket to the TCP mail port.
  564.  
  565.  
  566.      4.2.2 Discussion
  567.  
  568.        This proposal is in line  with  the  recommendation  in  the
  569.      NIFTP  specification  for  distinguishing  different  services
  570.      utilising NIFTP. An alternative, which is not  favoured  here,
  571.      is  to  reserve  a  value  for the Username attribute, such as
  572.      MAIL.
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580. Bennett                                                         [Page 9]
  581.  
  582. INDRA Note 1025                                         NIFTP-Based Mail
  583.  
  584.  
  585.  
  586.  
  587.  
  588.      4.3 Mail Server Communication
  589.  
  590.      4.3.1 Proposal
  591.  
  592.        Synchronisation shall be achieved via the  establishment  of
  593.      an  virtual  connection  between  the  mail donor and the mail
  594.      server. This connection may be  used  for  one  or  more  mail
  595.      transfers. The connection may have one or more segments, where
  596.      each segment may use a different transport protocol.
  597.  
  598.  
  599.      4.3.2 Discussion
  600.  
  601.        This is normal NIFTP usage, and is essentially a restatement
  602.      of the network-independence criterion.
  603.  
  604.        Normally, the donor and server will use the  same  transport
  605.      protocol,   and   no   additional  procedures  need  be  used.
  606.      Exceptionally, the mail donor and server may  not  be  on  the
  607.      same  transport  service.  In  this  case  direct  NIFTP  file
  608.      transfer is  still  possible,  but  an  additional  degree  of
  609.      support  is  needed,  through  the  provision  of  one or more
  610.      virtual call gateways. At the least,  the  following  services
  611.      are necessary:
  612.  
  613.       (1)    One-to-one connection mapping.
  614.  
  615.       (2)    Addressing procedures. This could  be  any  acceptable
  616.              procedure,   e.g.   source   routing,  creation  of  a
  617.              hierarchical address space, or  mapping  of  transport
  618.              service subaddress to destination host.
  619.  
  620.       (3)    Call request facility. This carries all the addressing
  621.              information  necessary  for establishing an end-to-end
  622.              path.
  623.  
  624.       (4)    Call accept facility. This  is  necessary  to  confirm
  625.              that an end-to-end path has been established.
  626.  
  627.       (5)    Data transfer. This should commence only after a  call
  628.              accept has been received.
  629.  
  630.       (6)    Push preservation. Data should  be  forwarded  if  any
  631.              push  indication  (e.g.  TCP EOL, X25 No More Data) is
  632.              received. The gateway may decide to  forward  data  in
  633.              other circumstances.
  634.  
  635.  
  636.  
  637.  
  638. Bennett                                                        [Page 10]
  639.  
  640. INDRA Note 1025                                         NIFTP-Based Mail
  641.  
  642.  
  643.  
  644.  
  645.  
  646.       (7)    Closure  propagation.  If  a  connection  closure   is
  647.              received  from  one  side, it shall be mapped into the
  648.              appropriate closure procedure on the other.
  649.  
  650.       (8)    Reset propagation. If  any  network  in  the  path  is
  651.              capable  of generating resets, these must be forwarded
  652.              in some fashion by the gateway. For instance,  an  X25
  653.              RESET  may be mapped into TCP URGENT. If resets cannot
  654.              be generated this may be ignored by the gateway.
  655.  
  656.      It should be noted that the address transformations  mentioned
  657.      above need not be visible to the mail donor and server, and do
  658.      not in any circumstances require  address  processing  of  the
  659.      mail  text  at the virtual call gateway. For bidirectionality,
  660.      however, it  is  necessary  that  the  donor  and  server  can
  661.      recognise  their  respective hostnames as embedded in the mail
  662.      file.
  663.  
  664.  
  665.      4.4 Mail Transfer
  666.  
  667.      4.4.1 Proposal
  668.  
  669.        The transfer may be initiated by either the  mail  donor  or
  670.      the mail server.
  671.  
  672.        The file will be transferred by the  NIFTP  using  IA5  text
  673.      codes. If the file only contains a text message, then the Data
  674.      Type attribute will indicate text only.
  675.  
  676.        If the transfer is initiated by the  mail  donor,  then  the
  677.      Mode of Access used will be 'Replace or Make' and the Filename
  678.      attribute on the SFT will indicate 'no value  available';  the
  679.      server  should  supply  a  value  on  the  RPOS  for reporting
  680.      purposes.
  681.  
  682.        If the transfer is initiated by the mail  server,  then  the
  683.      Mode  of  Access  used  will  be  'Read  Only'. The donor will
  684.      nevertheless often wish to delete the file after it  has  been
  685.      successfully  transferred.  The  Filename attribute on the SFT
  686.      will supply a value.
  687.  
  688.        No other  constraints  are  imposed  on  the  use  of  NIFTP
  689.      attributes.
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696. Bennett                                                        [Page 11]
  697.  
  698. INDRA Note 1025                                         NIFTP-Based Mail
  699.  
  700.  
  701.  
  702.  
  703.  
  704.      4.4.2 Discussion
  705.  
  706.        This section defines the actual mail transfer procedure, and
  707.      places minimal restrictions on NIFTP use.
  708.  
  709.        Alternative  structures  lead  to  greater  restrictions  or
  710.      special interpretation of NIFTP attributes, or both.
  711.  
  712.        If a message format other than RFC733 is used,  then  mixed-
  713.      media  transfers  may  be possible.  The NIFTP procedure would
  714.      then have to be modified. If the file contains  a  mixed-media
  715.      message,  then  the  Data  Type attribute will indicate either
  716.      mixed file or mixed records as  appropriate,  and  the  binary
  717.      formats for the non-text portions will be negotiated.
  718.  
  719.        Mailbagging may also require extension. In  this  case,  the
  720.      mode  of  access  used by a mail donor initiating the transfer
  721.      could be 'Append or Make', though this is not recommended.
  722.  
  723.        Other facilities which may be useful are: data  compression,
  724.      text  formatting,  record  structuring, restart and resumption
  725.      recovery facilities, account name, various passwords etc.
  726.  
  727.  
  728.      4.5 Reliability
  729.  
  730.        The NIFTP has several grades of recovery action,  which  can
  731.      be  exploited  to ensure that a message will be delivered to a
  732.      server  despite  the  occurence  of  system  or  communication
  733.      errors.   However,  the  successful delivery of a message to a
  734.      server does not guarantee it will be successfully delivered to
  735.      the recipient.  If it cannot be delivered, notification should
  736.      be sent to the sender by the  server  forced  to  discard  it,
  737.      where  this  is  possible. This notice will take the form of a
  738.      message, and the sender's  address  will  be  determined  from
  739.      inspection  of  the  appropriate  fields (i.e. "Reply-to:" and
  740.      "From:") in the message. A  non-delivery  notice  should  make
  741.      maximum use of the NIFTP reliability procedures to ensure that
  742.      it itself is delivered.
  743.  
  744.  
  745.      5. Mail Relays
  746.  
  747.        For a number of reasons it may not be possible to transfer a
  748.      message  direct  between  the  sender  and  the  receiver.  In
  749.      particular, they may not use the same mail transfer procedure.
  750.  
  751.  
  752.  
  753.  
  754. Bennett                                                        [Page 12]
  755.  
  756. INDRA Note 1025                                         NIFTP-Based Mail
  757.  
  758.  
  759.  
  760.  
  761.  
  762.      In such cases, mail must be  staged  through  an  intermediate
  763.      mail server, which acts as a mail relay.
  764.  
  765.        The function of the relay is to redistribute  received  mail
  766.      to  the  destinations or to other mail relays. I do not intend
  767.      to specify a  mail  manipulation  protocol  here,  but  it  is
  768.      necessary to discuss the functions which must be provided, and
  769.      the options which are available, in order to determine to what
  770.      extent  it is possible to allow variation and still provide an
  771.      acceptable service. Since the actions of other mailing systems
  772.      cannot  be  specified here, these functions will be discussed,
  773.      where  necessary,  in  relation  to  the  NIFTP-based   system
  774.      described above.
  775.  
  776.        It is important to distinguish these relays from the virtual
  777.      call  gateways  discussed  above.  Either  may  be used at the
  778.      interface between two transport services, but the virtual call
  779.      gateway gives the minimum facilities which must be provided at
  780.      this point, and is invisible to the  endpoint  mail  transfer.
  781.      Mail   relays  must  be  used  when  different  mail  transfer
  782.      protocols are used by mail donor and recipient,  and  will  be
  783.      visible  to  both  the  sender  and  recipient; in this case a
  784.      virtual call gateway will be totally inadequate.
  785.  
  786.  
  787.      5.1 Address Processing
  788.  
  789.        It is not possible to prescribe an addressing format for use
  790.      by  relays,  except that it be RFC733-compatible.  The actions
  791.      to be taken by the relay on processing addresses are dependent
  792.      on  local  conventions  and private agreements. It is expected
  793.      that there are three major types of address  processing  which
  794.      may occur:
  795.  
  796.       (1)    The address of the next stage  may  be  defined  by  a
  797.              received  <hostname> component, which is understood by
  798.              the relay to map to the name of some other  host.  For
  799.              example,  the  name 'Linington@Cambridge', if received
  800.              at UCL from  the  US,  might  cause  the  mail  to  be
  801.              transferred  to  Cambridge,  or  to  some intermediate
  802.              relay.
  803.  
  804.       (2)    If no <hostname> is received (which  can  only  happen
  805.              from  a  non-NIFTP mailing system), the address of the
  806.              next stage may be defined  by  a  received  <username>
  807.              component,  which is understood by the relay to map to
  808.  
  809.  
  810.  
  811.  
  812. Bennett                                                        [Page 13]
  813.  
  814. INDRA Note 1025                                         NIFTP-Based Mail
  815.  
  816.  
  817.  
  818.  
  819.  
  820.              the  name  of  some  other  relay  host,  or  to   the
  821.              <username>  and  <hostname>  of  the  final  user. For
  822.              example, the name 'DCPU', if received at UCL from  the
  823.              US,     might     be     understood    to    map    to
  824.              'Linington@Cambridge', and be forwarded. This form  is
  825.              not  encouraged  as user names must then become widely
  826.              known.
  827.  
  828.       (3)    If  the  <hostname>  is  the  relay  itself,  and  the
  829.              destination is not at the relay, then either case (ii)
  830.              applies, or the username is structured in some fashion
  831.              understood  by  the  relay.   A  recommended  form  is
  832.              through the use of % as a separator, which leads to  a
  833.              source-routed form, e.g:
  834.  
  835.                     Linington%Cambridge%PSS@UCL.
  836.  
  837.              On reception  at  UCL  from  the  US,  the  <hostname>
  838.              component  will  be discarded, the last % converted to
  839.              an   @,   and    the    structured    name    becomes:
  840.              Linington%Cambridge@PSS.  The  relay  then injects the
  841.              message into the appropriate mailing system over  PSS,
  842.              subject to the constraints of that system.
  843.  
  844.      Any or all of these  approaches  may  coexist.  As  a  general
  845.      approach,   I   prefer   the   third.   All  suffer  from  the
  846.      disadvantages that they  are  not  global,  and  that  address
  847.      transformation  may be required. The user who uses relays must
  848.      use an address format he is sure will be understood along  the
  849.      route. In practice, however, it is unlikely that more than one
  850.      or two relays  will  be  involved  in  the  transfer  of  most
  851.      messages.
  852.  
  853.        The address processing at mail relays, which may affect  the
  854.      text  of the message received, must be carefully distinguished
  855.      from the address processing which may be required  at  virtual
  856.      call  gateways  between  the donor and server, which does not.
  857.      Two different levels of addressing are  involved  here  -  the
  858.      former  is  visible  only  in  mail,  the latter only within a
  859.      particular file transfer.
  860.  
  861.  
  862.      5.2 Return Paths
  863.  
  864.        The system provides no  guarantee  that  a  message  can  be
  865.      replied  to,  although  this will normally be possible. Relays
  866.  
  867.  
  868.  
  869.  
  870. Bennett                                                        [Page 14]
  871.  
  872. INDRA Note 1025                                         NIFTP-Based Mail
  873.  
  874.  
  875.  
  876.  
  877.  
  878.      can provide assistance in the following ways,  both  of  which
  879.      involve the processing of the header content of the message:
  880.  
  881.       (1)    Each relay can insert a "Via: " field in the message.
  882.  
  883.       (2)    Each relay can add its name to a  "Reply-to: "  field,
  884.              thus building up a return source route. The name added
  885.              must be the name known  to  the  message  system  into
  886.              which it is forwarding the mail.
  887.  
  888.  
  889.        The general problem is  to  allow  replies  to  be  sent  to
  890.      recipients  other than the sender. One possibility is to allow
  891.      replies to be redistributed by the original sending  host,  if
  892.      that  host  is  willing  to do so. Alternatively, intermediate
  893.      relays could process the names of "To: " and "Cc: " fields  in
  894.      the message to provide a shorter path. This problem is exactly
  895.      analogous to the "third-party addressing" problem  of  the  UK
  896.      Transport  Service  [SG3/80],  and the techniques discussed in
  897.      that document could be used here.
  898.  
  899.        Although this  procedure  requires  relays  to  process  the
  900.      message  text,  programs  to  do such processing already exist
  901.      which could be used for this purpose. If  such  processing  is
  902.      not  done,  it is necessary to insist that replies can only be
  903.      sent if the recipient knows the location of the sender,  which
  904.      for  full  answerability amounts to a requirement for a global
  905.      address space. This contravenes one of the stated  limitations
  906.      on the system.
  907.  
  908.  
  909.      5.3 Economy
  910.  
  911.        Where the mail system  protocols  allow,  the  relay  should
  912.      minimise  the  number of copies of a message injected into the
  913.      system. Thus a relay may receive a single copy  of  a  message
  914.      destined  for  several  different  hosts, some of which may be
  915.      only accessible through another relay. For each host which can
  916.      be  reached  directly the relay will send a single copy of the
  917.      message; for the remaining hosts, a single copy will  be  sent
  918.      to the next relay which will redistribute it in turn.
  919.  
  920.        This minimisation may require considerable  intelligence  to
  921.      do  properly, and may not always be practicable.  If the relay
  922.      is receiving mail from a system which  creates  one  copy  per
  923.      user,  and  injecting  it  into a system similar to the NIFTP-
  924.  
  925.  
  926.  
  927.  
  928. Bennett                                                        [Page 15]
  929.  
  930. INDRA Note 1025                                         NIFTP-Based Mail
  931.  
  932.  
  933.  
  934.  
  935.  
  936.      based system described here, there  is  no  easy  option.  One
  937.      possibility  is  to  parse  the  header to identify, so far as
  938.      possible, how many copies of the  message  it  may  expect  to
  939.      receive,  detect  the duplicates, and discard them. Another is
  940.      for a relay to create a mail list and instruct a recipient  to
  941.      "Reply-to: <mail list name>@<relay>".   It   must   then  have
  942.      criteria for deciding how long to keep such lists  around.  No
  943.      doubt other equally inspiring schemes can be devised.
  944.  
  945.  
  946.      5.4 Reliability
  947.  
  948.        Relays should make use of the mail system to  give  delivery
  949.      failure  notifications, as described above. There is, however,
  950.      no guarantee that the return path can be constructed.
  951.  
  952.  
  953.      6. The ARPA Mail Transition Plan: A Case Study
  954.  
  955.        In this section a proposal is made for using the NIFTP-based
  956.      protocol to allow mail transfer between ARPANET users who have
  957.      only NCP-based mail transfer available to them, and those  who
  958.      have only TCP-based network access.
  959.  
  960.  
  961.      6.1 Current Proposals
  962.  
  963.        The current proposals for ARPANET mail transition centre  on
  964.      the  implementation  of  the  MTP  discussed  above,  and  the
  965.      definition  of  relay  procedures  between  NCP-based  mailing
  966.      systems  and TCP-based mailing systems [Postel80]. In general,
  967.      these relays fit into the context discussed  in  the  previous
  968.      section,  and  most of the comments of the current proposal on
  969.      the complexity of maintaining relays, mapping tables  etc  are
  970.      fully endorsed here.
  971.  
  972.        Aside from the features of the MTP, there are a two specific
  973.      points that need discussion:
  974.  
  975.       (1)    As noted in the October  1980  Internet  meeting,  the
  976.              transition  plan  requires  that  user names be unique
  977.              throughout the  ARPA  Catenet  (and  hence  a  growing
  978.              portion  of  the ARPANET), in order to allow ARPA mail
  979.              from a standard ARPANET NCP-based mail  server  to  be
  980.              sent  to  a  relay for forwarding to the ARPA Catenet.
  981.              This is clearly unacceptable, and can most  simply  be
  982.  
  983.  
  984.  
  985.  
  986. Bennett                                                        [Page 16]
  987.  
  988. INDRA Note 1025                                         NIFTP-Based Mail
  989.  
  990.  
  991.  
  992.  
  993.  
  994.              avoided by  allowing  the  relays  to  parse,  and  if
  995.              necessary  modify  the  header  fields  in the message
  996.              text. Such solutions are preferable.
  997.  
  998.       (2)    The solution is inextensible.   The  transition  plans
  999.              assumes  that transfer of mail between two MTP servers
  1000.              on hosts using only  NCP  and  TCP  must  be  achieved
  1001.              through  an MTP-based mail relay at a site with access
  1002.              to both. This is rather  wasteful,  since  essentially
  1003.              the same protocol is involved in both cases. A similar
  1004.              relay is required  if  other  transport  services,  or
  1005.              network services such as X25, require mail service.
  1006.  
  1007.  
  1008.  
  1009.      6.2 NIFTP and the Transition Plan
  1010.  
  1011.        The major  fault  of  the  current  transition  arrangements
  1012.      relevant here is that a complex message relay is required even
  1013.      for hosts which both talk MTP. This is not the  case  for  the
  1014.      NIFTP-based  scheme  outlined here. All that is necessary is a
  1015.      relatively  simple  virtual  call  gateway   at   an   NCP/TCP
  1016.      transition  point,  along  the  lines  discussed above. Such a
  1017.      gateway  has  been  built  and  its  feasability  demonstrated
  1018.      [Bennett80]. Moreover, it has been demonstrated that the NIFTP
  1019.      can be readily extended to non-Catenet networks, whereas it is
  1020.      far  from  clear  that  this is true for the MTP-based scheme,
  1021.      because of its reliance on Telnet.
  1022.  
  1023.        The advantage of an explicitly network-independent  approach
  1024.      is  that  mail  transition  can  now be entirely divorced from
  1025.      NCP/TCP transition. The development of future  mail  protocols
  1026.      can carry on without requiring an immediate, new, solution for
  1027.      the Catenet. Any host with NIFTP can do direct mail  transfers
  1028.      using existing formats.
  1029.  
  1030.        Of course, very few ARPANET  hosts  have  access  to  NIFTP,
  1031.      although this is easy to change.  However, it is not necessary
  1032.      that they should. There is indeed  a  staging  problem  to  be
  1033.      solved - the staging between NIFTP-based mail and current ARPA
  1034.      mail. This must take place along the  lines  discussed  above,
  1035.      but once solved, it is solved, in theory, not just for NCP and
  1036.      TCP but for any transport protocol.
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044. Bennett                                                        [Page 17]
  1045.  
  1046. INDRA Note 1025                                         NIFTP-Based Mail
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.      6.3 A Proposal
  1053.  
  1054.        It is believed that an NIFTP scheme  of  this  sort  can  be
  1055.      built  and proliferated very quickly. The following components
  1056.      already exist:
  1057.  
  1058.       (1)    NIFTP implementations written to a  transport  service
  1059.              interface for TOPS20 DEC20s, UNIX PDP-11s (Version 6),
  1060.              and MOS LSI-11s. These need to be upgraded to  conform
  1061.              to the new specification of the protocol. The first is
  1062.              available above TCP and NCP; the second  will  shortly
  1063.              be  accessible  above  TCP  and  X25; and the third is
  1064.              available above TCP.
  1065.  
  1066.       (2)    A simple  NCP/TCP  virtual  call  gateway,  for  NIFTP
  1067.              support, on a TOPS20. This was built for demonstration
  1068.              purposes, and needs some modification for general use.
  1069.  
  1070.       (3)    Message relays for heterogenous mail systems,  in  the
  1071.              form of the MMDF system developed by the University of
  1072.              Delaware [Crocker79], for UNIX. Such  relays  must  be
  1073.              built in any case for the MTP scheme.
  1074.  
  1075.      The following components are needed:
  1076.  
  1077.       (1)    Specification  and  agreement  to  the  virtual   call
  1078.              extensions needed for direct NCP/TCP file transfer. If
  1079.              these are done using a subset of the protocol proposed
  1080.              for  implementing  the  UK Transport Service above TCP
  1081.              [Bennett80a] (and a similar protocol  for  NCP),  then
  1082.              direct  mail  transfers from NCP sites to sites on the
  1083.              UK public network PSS could also be done.
  1084.  
  1085.       (2)    Allocation of NIFTP-mail  server  sockets  and  ports.
  1086.              Again,   for  extension  to  the  UK  public  network,
  1087.              Transport Service and/or X25 subaddresses must also be
  1088.              defined.
  1089.  
  1090.       (3)    Agreement on an addressing scheme  to  allow  transfer
  1091.              from  ARPA  mail  to NIFTP-based sites. It is proposed
  1092.              that a structured user name of the form outlined above
  1093.              be used.
  1094.  
  1095.       (4)    Implementation of an NIFTP  mail  channel  in  a  form
  1096.              suitable for incorporation under MMDF by UCL.
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102. Bennett                                                        [Page 18]
  1103.  
  1104. INDRA Note 1025                                         NIFTP-Based Mail
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.       (5)    At least one system in the US  supporting  MMDF  which
  1111.              can  act  as a relay between ARPA mail and NIFTP mail,
  1112.              using the NIFTP channel supplied by UCL.
  1113.  
  1114.       (6)    Code interfacing the transport  service  interface  of
  1115.              the UNIX NIFTP directly to UNIX TCP (and possibly NCP)
  1116.              implementations, supplied by the US MMDF site.
  1117.  
  1118.  
  1119.        This allows us to define the minimum configuration necessary
  1120.      to  provide  NIFTP-based mail transfer between UCL systems and
  1121.      systems in the CONUS ARPANET using either the current  ARPANET
  1122.      mail  transfer  protocol  or the new MTP. The path would be as
  1123.      follows:
  1124.  
  1125.       (1)    UCL donor passes mail to UCL UNIX NIFTP in core.
  1126.  
  1127.       (2)    NIFTP initiates a  connection  to  the  remote  NIFTP,
  1128.              which  is which is driven as a mail channel by an MMDF
  1129.              system (e.g. SRI-UNIX or UDEL-EE). This path will  be:
  1130.              through the UCL UIPP protocol to the Front End; thence
  1131.              via TCP through UCLNET, SATNET and the CONUS  ARPANET,
  1132.              either  directly to the remote system, or to a TCP/NCP
  1133.              virtual call gateway resident at ISIE (which  in  turn
  1134.              forwards  the  NIFTP traffic to the remote MMDF server
  1135.              through NCP).
  1136.  
  1137.       (3)    The remote MMDF  injects  the  mail  into  either  the
  1138.              standard  ARPANET  mail  channel or an MTP channel; at
  1139.              the remote end of which it is delivered to the  user's
  1140.              mailbox.
  1141.  
  1142.  
  1143.        In addition, it would be highly desirable  to  construct  an
  1144.      MMDF-like system which could act as a multi-channel mail relay
  1145.      on TOPS20 systems in the ARPANET. All relevant  mail  channels
  1146.      could  be  driven  through  it  in a precisely similar manner.
  1147.      However, rather more work is required  to  make  this  service
  1148.      available.
  1149.  
  1150.        The above discussion ignores MTP-based mail altogether. This
  1151.      has been done for illustrative purposes only - I have no doubt
  1152.      that the current transition plans will be implemented,  though
  1153.      possibly not quite in their current form. In practice, the two
  1154.      systems could  coexist  quite  happily.  The  main  impact  of
  1155.      allowing  the  two  systems to proceed in parallel would be in
  1156.  
  1157.  
  1158.  
  1159.  
  1160. Bennett                                                        [Page 19]
  1161.  
  1162. INDRA Note 1025                                         NIFTP-Based Mail
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.      the design of mail relays.  The  more  mail  transfer  systems
  1169.      exist,  the  more important it is that relays be designed in a
  1170.      'mail-independent'  fashion.  The  advantages  of  this   have
  1171.      already   been  demonstrated  for  the  UNIX  MMDF.  The  same
  1172.      principles should be followed in  the  design  of  relays  for
  1173.      other computer systems.
  1174.  
  1175.  
  1176.      7. NIFTP-Based Mail in the UK.
  1177.  
  1178.        Within Britain, the problems of building a mail system along
  1179.      these  lines  are  rather  different,  but  on  the whole less
  1180.      complex. The basic  communications  facilities  are  only  now
  1181.      coming into widespread use, and the investment in higher level
  1182.      protocols is much lower. However, the higher  level  protocols
  1183.      which  are  coming into use are much friendlier to the system,
  1184.      for the following reasons:
  1185.  
  1186.       (1)    NIFTP is already available on most widely used machine
  1187.              types  in  Britain.  Implementing  the  mail  transfer
  1188.              procedure is a trivial additional exercise.
  1189.  
  1190.       (2)    The UK transport service proposals assume the need for
  1191.              network  interconnection  to  provide  a  semantically
  1192.              equivalent service rather than a  superimposed  common
  1193.              protocol.  Hence  the  need  for extensibility through
  1194.              virtual call gateways is widely accepted.
  1195.  
  1196.       (3)    Because  there  is  no  heavy  investment   in   first
  1197.              generation protocols, there is no absolute requirement
  1198.              for mail relays at this stage.
  1199.  
  1200.  
  1201.        The major need is for  message  processing  and  preparation
  1202.      programs, as such programs are not widely available in the UK,
  1203.      except for UNIX systems. In particular, these should be  based
  1204.      on  RFC733  procedures.  For  many  system  types these may be
  1205.      available from similar systems in the US; others would have to
  1206.      be developed from scratch.
  1207.  
  1208.  
  1209.      8. References
  1210.  
  1211.  
  1212.  
  1213.      [Bennett80] - Bennett, C. J.: The Design and Implementation of
  1214.  
  1215.  
  1216.  
  1217.  
  1218. Bennett                                                        [Page 20]
  1219.  
  1220. INDRA Note 1025                                         NIFTP-Based Mail
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.           Transnetwork  Systems.  UCL   TR   65.   Available   from
  1227.           Univeristy College London.
  1228.  
  1229.      [Bennett80a] - Bennett, C. J.: Realisation of the Yellow  Book
  1230.           Above  TCP.  INDRA  Note  965.  Available from University
  1231.           College London.
  1232.  
  1233.      [Crocker77] - Crocker, D. H., Vittal, J. J.,  Pogran,  K.  T.,
  1234.           Henderson  Jr,  D.  A.:  Standard  for the Format of ARPA
  1235.           Network   Messages.   RFC733.    Available    from    SRI
  1236.           International,  Menlo Park, California. Obsoletes earlier
  1237.           versions.
  1238.  
  1239.      [Crocker79] - Crocker, D. H., Szurkowski, E.  S.,  Farber,  D.
  1240.           J.:  An Internetwork Memo Distribution Capability - MMDF.
  1241.           Proc. 6th Data Comm. Symp.
  1242.  
  1243.      [HLPG81] - HLPG/FTPIG: A  Network  Independent  File  Transfer
  1244.           Protocol.   Available   from   DCPU,   National  Physical
  1245.           Laboratory, Teddington, UK. Obsoletes earlier versions.
  1246.  
  1247.      [Postel76]  -  Postel,  J.  B.:  Mail  Protocol.  NIC   29588.
  1248.           Available from SRI International, Menlo Park, California.
  1249.  
  1250.      [Postel80] - Postel, J. B., Cerf, V. G.: Mail Transition Plan.
  1251.           RFC773.  Available  from  SRI  International, Menlo Park,
  1252.           California.
  1253.  
  1254.      [SG3/80] - PSS/SG3: A Network Independent  Transport  Service.
  1255.           Available  from  the  DCPU, National Physical Laboratory,
  1256.           Teddington, UK.
  1257.  
  1258.      [Sluizer80] - Sluizer, S., Postel,  J.  B.:  A  Mail  Transfer
  1259.           Protocol. RFC772. Available from SRI International, Menlo
  1260.           Park, California.
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276. Bennett                                                        [Page 21]
  1277.  
  1278. INDRA Note 1025                                         NIFTP-Based Mail
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.                                  APPENDIX I
  1285.  
  1286.                                RFC733 Formats
  1287.  
  1288.             Below is an example of an RFC733 message taken from the
  1289.           specification.
  1290.  
  1291.                  Date: 26 August 1976 1430-EDT
  1292.                  From:George Jones<Group at Host>
  1293.                  Sender:Secy at SHOST
  1294.                  To:Al Neuman at Mad-Host,
  1295.                           Sam Irving at Other-Host
  1296.                  Message-ID:  <some string at SHOST>
  1297.  
  1298.                  This is an example of an RFC733 message. Both
  1299.                  simpler and more complex headers are possible.
  1300.  
  1301.             The entire RFC733 syntax specification is summarised in
  1302.           the   following  listing,  extracted  from  the  original
  1303.           specification:
  1304.           A.  ALPHABETICAL LISTING OF SYNTAX RULES
  1305.  
  1306.  
  1307.           address     =  host-phrase / quoted-string
  1308.                       / (*phrase "<"  address ">" )
  1309.                       / (*phrase ":"  address ";" )
  1310.                       / (":" ("Include" / "Postal" / atom) ":" address)
  1311.           ALPHA       =  <any TELNET ASCII alphabetic character>
  1312.           atom        =  1*<any CHAR except specials and CTLs>
  1313.  
  1314.           CHAR        =  <any TELNET ASCII character>
  1315.           comment     =  "(" *(ctext / comment / quoted-pair) ")"
  1316.           CR          =  <TELNET ASCII carriage return>
  1317.           CRLF        =  CR LF
  1318.           ctext       =  <any CHAR excluding "(", ")", CR, LF and
  1319.                          including linear-white-space>
  1320.           CTL         =  <any TELNET ASCII control character and DEL>
  1321.  
  1322.           date        =  1*2DIGIT ["-"] month ["-"] (2DIGIT /4DIGIT)
  1323.           date-field  =  "Date"       ":" date-time
  1324.           date-time   =  [ day-of-week "," ] date time
  1325.           day-of-week =  "Monday"    / "Mon"  / "Tuesday"   / "Tue"
  1326.                       /  "Wednesday" / "Wed"  / "Thursday"  / "Thu"
  1327.                       /  "Friday"    / "Fri"  / "Saturday"  / "Sat"
  1328.                       /  "Sunday"    / "Sun"
  1329.           delimiters  =  specials / comment / linear-white-space
  1330.  
  1331.  
  1332.  
  1333.  
  1334. Bennett                                                        [Page 22]
  1335.  
  1336. INDRA Note 1025                                         NIFTP-Based Mail
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.           DIGIT       =  <any TELNET ASCII digit>
  1343.  
  1344.           extension-field = <Any field which is defined in a document
  1345.                          published as a formal extension to this
  1346.                          specification>
  1347.  
  1348.           field       =  field-name ":" [ field-body ] CRLF
  1349.  
  1350.           fields      =  date-field  originator-fields  *optional-field
  1351.           field-body  =  field-body-contents
  1352.                          [CRLF LWSP-char field-body]
  1353.           field-body-contents = <the TELNET ASCII characters making up the
  1354.                          field-body, as defined in the following sections,
  1355.                          and consisting of combinations of atom, quoted-
  1356.                          string, and specials tokens, or else consisting of
  1357.                          texts>
  1358.           field-name  =  fnatom *(LWSP-char [fnatom])
  1359.           fnatom      =  1*<any CHAR, excluding CTLs, SPACE, and ":">
  1360.  
  1361.           host-indicator =  1*( ("at" / "@") node )
  1362.           host-phrase =  phrase  host-indicator
  1363.           hour        =  2DIGIT [":"] 2DIGIT [ [":"] 2DIGIT ]
  1364.           HTAB        =  <TELNET ASCII horizontal-tab>
  1365.  
  1366.           LF          =  <TELNET ASCII linefeed>
  1367.           linear-white-space =  1*([CRLF] LWSP-char)
  1368.           LWSP-char   = SPACE / HTAB
  1369.  
  1370.           mach-id     =  "<" host-phrase ">"
  1371.           mailbox     =  host-phrase /  (phrase mach-id)
  1372.           message     =  fields *(CRLF *text)
  1373.           month       =  "January"   / "Jan"  / "February"  / "Feb"
  1374.                       /  "March"     / "Mar"  / "April"     / "Apr"
  1375.                       /  "May"                / "June"      / "Jun"
  1376.                       /  "July"      / "Jul"  / "August"    / "Aug"
  1377.                       /  "September" / "Sep"  / "October"   / "Oct"
  1378.                       /  "November"  / "Nov"  / "December"  / "Dec"
  1379.  
  1380.           node        =  word / 1*DIGIT
  1381.  
  1382.           optional-field  =
  1383.                          "To"         ":"  address
  1384.                       /  "cc"         ":"  address
  1385.                       /  "bcc"        ":"  address
  1386.                       /  "Subject"    ":" *text
  1387.                       /  "Comments"   ":" *text
  1388.  
  1389.  
  1390.  
  1391.  
  1392. Bennett                                                        [Page 23]
  1393.  
  1394. INDRA Note 1025                                         NIFTP-Based Mail
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.                       /  "Message-ID:" mach-id
  1401.                       /  "In-Reply-To"":"  (phrase / mach-id)
  1402.                       /  "References:"  (phrase / mach-id)
  1403.                       /  "Keywords"   ":"  phrase
  1404.                       /  extension-field
  1405.                       /  user-defined-field
  1406.           originator-fields =
  1407.                          (  "From"     ":" mailbox
  1408.                            ["Reply-To:"  address] )
  1409.                       /  (  "From"     ":" 1 address
  1410.                             "Sender"   ":" mailbox
  1411.                            ["Reply-To:"  address] )
  1412.  
  1413.           phrase      =  1*word
  1414.  
  1415.           quoted-pair =  "
  1416.           quoted-string =  <">  *(qtext / quoted-pair)  <">
  1417.           qtext       =  <any CHAR except <">, CR, or LF and including
  1418.                          linear-white-space>
  1419.           SPACE       =  <TELNET ASCII space>
  1420.           specials    =  "(" / ")" / "<" / ">" / "@"/ "," / ";" / ":"
  1421.                       /  "
  1422.  
  1423.           text        =  <any CHAR, including bare CR and/or bare LF, but
  1424.                          NOT including CRLF>
  1425.           time        =  hour zone
  1426.  
  1427.           user-defined-field = <Any field which has not been defined in
  1428.                          this specification or published as an extension to
  1429.                          this specification; names for such fields must be
  1430.                          unique and may be preempted by published
  1431.                          extensions>
  1432.  
  1433.           word        =  atom / quoted-string
  1434.  
  1435.           zone        = ( ("+" / "-") 4DIGIT )
  1436.                       / ( ["-"] (1ALPHA
  1437.                         / "GMT" / "NST"  / "AST" / "ADT" / "EST" / "EDT"
  1438.                         / "CST" / "CDT"  / "MST" / "MDT" / "PST" / "PDT"
  1439.                         / "YST" / "YDT"  / "HST" / "HDT" / "BST" / "BDT" ))
  1440.  
  1441.           <">         =  <TELNET ASCII quote mark>
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450. Bennett                                                        [Page 24]
  1451.  
  1452. INDRA Note 1025                                         NIFTP-Based Mail
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.                                  APPENDIX II
  1459.  
  1460.                        UCL Mail System Plans for 1981
  1461.  
  1462.             The following is an extract from the UCL annual  report
  1463.           for  the  Ministry  of  Defence,  summarising our planned
  1464.           activities in 1981.
  1465.  
  1466.  
  1467.             Plans for the message systems work  in  1981  have  not
  1468.           been  finalised,  as  some  areas depend on decisions and
  1469.           choices which have not yet been made.  However,  a  rough
  1470.           scheme is as follows:
  1471.  
  1472.       (1)    Complete  installation  of  MMDF  in   local   systems
  1473.              (January).    Supportive   tasks   will   be  required
  1474.              throughout  the   year,   eg   bugfixing   as   found,
  1475.              transferring  and  reconfiguring  MMDF for new systems
  1476.              (eg the 11/44) as they become available.
  1477.  
  1478.       (2)    Issue  specification  of  proposed  NIFTP-based   mail
  1479.              channel (January)
  1480.  
  1481.       (3)    Either
  1482.  
  1483.              implement NIFTP-based  mail  channel  over  TCP  under
  1484.              MMDF;  if  possible, after upgrading UNIX NIFTP to the
  1485.              1980 specification.  Optionally (but  preferably)  the
  1486.              UNIX NIFTP should also use Yellow Book TCP commands.
  1487.  
  1488.              or
  1489.  
  1490.              implement or obtain MTP mail channel  over  TCP  under
  1491.              MMDF.  If  one  is  obtained from an outside source it
  1492.              must be modified to access TCP through the  UIPP,  and
  1493.              very  probably  modified so that it can be driven as a
  1494.              channel through MMDF.  (1st - 3rd quarter)
  1495.  
  1496.       (4)    Depending  on  the  choice  made  above,   appropriate
  1497.              supportive  action  must be taken. (2nd to 4th quarter
  1498.              and beyond)
  1499.  
  1500.               (1)    NIFTP-based channel
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508. Bennett                                                        [Page 25]
  1509.  
  1510. INDRA Note 1025                                         NIFTP-Based Mail
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                       (1)    This should be  released  to  an  MMDF
  1517.                              site  in  the  US  (either  SRI or the
  1518.                              University of  Delaware)  which  could
  1519.                              act as a relay.
  1520.  
  1521.                       (2)    Help and  assistance  as  required  to
  1522.                              interface NIFTP directly to TCP or NCP
  1523.                              in the remote system.
  1524.  
  1525.                       (3)    TCP/X25 virtual call gateway to  allow
  1526.                              access  through  IPSS  and  PSS.  This
  1527.                              should be in existance in any case.
  1528.  
  1529.  
  1530.               (2)    MTP channel
  1531.  
  1532.                       (1)    TCP/X25  virtual  call   gateway,   as
  1533.                              above.
  1534.  
  1535.                       (2)    Possibly    TCP/NCP    virtual    call
  1536.                              gateways. This depends on the progress
  1537.                              of MTP/ARPA  mail  relays  at  TCP/NCP
  1538.                              boundaries  as  required  by  the ARPA
  1539.                              Mail Transition Plan.
  1540.  
  1541.  
  1542.  
  1543.       (5)    Replace MSG message processing system by MH, to  allow
  1544.              remote  access  to UCL mail handling. (3rd/4th quarter
  1545.              and beyond).
  1546.  
  1547.              While the above lists the primary  path  to  providing
  1548.              mail  services,  there  are  a number of subsidiary or
  1549.              optional pathways which will also  be  undertaken,  if
  1550.              necessary or desirable. These include the following:
  1551.  
  1552.       (6)    Continue  efforts  to  provide  ARPANET  mail   access
  1553.              through a terminal channel. (January/February).
  1554.  
  1555.       (7)    Undertake   necessary    activity    to    incorporate
  1556.              TOPS20/TENEX  systems  into  either  the  NIFTP or MTP
  1557.              based scheme above. The latter case should  presumably
  1558.              involve  very  little  UCL  activity.  The former case
  1559.              requires the following from us (1st to 4th quarter and
  1560.              beyond):
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566. Bennett                                                        [Page 26]
  1567.  
  1568. INDRA Note 1025                                         NIFTP-Based Mail
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.               (1)    Optionally (but preferably) the  upgrading  of
  1575.                      the TOPS20 NIFTP to the 1980 specification.
  1576.  
  1577.               (2)    Optionally (but preferably) the interfacing of
  1578.                      the NIFTP to a Yellow Book TCP Service.
  1579.  
  1580.               (3)    The design and development  of  a  mail  relay
  1581.                      system  analogous  to MMDF for TOPS20. Even if
  1582.                      it is decided that UCL will go the NIFTP path,
  1583.                      such  a  relay  may  well be developed by a US
  1584.                      ARPA contractor for MTP support. In this case,
  1585.                      our  task is to interface the NIFTP channel on
  1586.                      TOPS20 to this relay.
  1587.  
  1588.  
  1589.       (8)    There may arise interest  in  providing  mail  servers
  1590.              within  the  UK  community,  eg on SRCNet or PSS. Such
  1591.              services are more likely to be NIFTP-based  than  MTP-
  1592.              based  (though  in  the  longer term Teletex is a more
  1593.              favoured candidate than  either).  In  this  case  the
  1594.              following  UCL  activities  would be required (2nd/3rd
  1595.              quarter to 4th quarter and beyond):
  1596.  
  1597.               (1)    NIFTP-based mail channel over Yellow Book over
  1598.                      X25.
  1599.  
  1600.               (2)    The use of the UCL MMDF server  as  an  actual
  1601.                      mail  relay, if Catenet sites are using an MTP
  1602.                      channel.
  1603.  
  1604.               (3)    A TCP/X25 virtual call convertor if  they  are
  1605.                      not.
  1606.  
  1607.  
  1608.       (9)    Additionally, UCL will  continue  to  take  an  active
  1609.              interest in message standardisation activity, in areas
  1610.              such as Teletex, IFIP WG6.5, etc.
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624. Bennett                                                        [Page 27]
  1625.  
  1626. INDRA Note 1025                                         NIFTP-Based Mail
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.                            Table of Contents
  1633.  
  1634.  
  1635.  
  1636.  
  1637.   1. Introduction..................................................1
  1638.  
  1639.  
  1640.   2. Requirements..................................................1
  1641.  
  1642.  
  1643.   3. Basic Elements................................................2
  1644.  
  1645.      3.1 Mail Format...............................................2
  1646.      3.2 Mail Addresses............................................3
  1647.      3.3 Mail Transfer.............................................4
  1648.  
  1649.   4. Point to Point Mail Transfer..................................6
  1650.  
  1651.      4.1 Mail Structure............................................6
  1652.         4.1.1 Proposal.............................................6
  1653.         4.1.2 Discussion...........................................7
  1654.            4.1.2.1 Address Lists...................................7
  1655.            4.1.2.2 Possible Extensions.............................7
  1656.            4.1.2.3 Alternative Structures..........................8
  1657.      4.2 Mail Server Identification................................9
  1658.         4.2.1 Proposal.............................................9
  1659.         4.2.2 Discussion...........................................9
  1660.      4.3 Mail Server Communication.................................9
  1661.         4.3.1 Proposal.............................................9
  1662.         4.3.2 Discussion...........................................10
  1663.      4.4 Mail Transfer.............................................11
  1664.         4.4.1 Proposal.............................................11
  1665.         4.4.2 Discussion...........................................11
  1666.      4.5 Reliability...............................................12
  1667.  
  1668.   5. Mail Relays...................................................12
  1669.  
  1670.      5.1 Address Processing........................................13
  1671.      5.2 Return Paths..............................................14
  1672.      5.3 Economy...................................................15
  1673.      5.4 Reliability...............................................16
  1674.  
  1675.   6. The ARPA Mail Transition Plan: A Case Study...................16
  1676.  
  1677.      6.1 Current Proposals.........................................16
  1678.  
  1679.  
  1680.  
  1681.  
  1682. Bennett                                                        [Page 28]
  1683.  
  1684. INDRA Note 1025                                         NIFTP-Based Mail
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.      6.2 NIFTP and the Transition Plan.............................17
  1691.      6.3 A Proposal................................................17
  1692.  
  1693.   7. NIFTP-Based Mail in the UK....................................20
  1694.  
  1695.  
  1696.   8. References....................................................20
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740. Bennett                                                        [Page 29]
  1741.